Static random access memory (RAM), or “SRAM,” is an important type of semiconductor memory used in many integrated circuit applications, from embedded memory (e.g., as cache memory and register files) in general purpose processors and application specific integrated circuits to external memories. SRAM is a desirable type of memory due to its high-speed, low power consumption, and simple operation. Unlike dynamic RAM, SRAM does not need to be regularly refreshed to retain the stored data, and its design is generally straightforward.
A typical SRAM bitcell includes a pair of cross-coupled inverters that hold a desired data bit value (i.e., either a 1 or a 0) and the complement of that value. While SRAM is a desirable type of memory, it is known that if not properly designed and fabricated, an SRAM bitcell can become unstable when accessed, at which point the held bit value is upset, i.e., switches. Of course, such instability is intolerable. Unfortunately, the stability of an SRAM bitcell is in full conflict with the write-ability of the bitcell with respect to the strengths of the N-type devices (transistors) and P-type devices (transistors) within the bitcell. Historically, SRAM bitcells have typically been optimized to strike a balance between stability and write-ability. However, with decreasing feature sizes and decreasing operating voltages conventional balancing techniques are meeting their limits.